1. Field of the Invention
The present invention relates in general to file systems for limited-resource computational devices and systems, and in particular, to devices, systems and methods for implementing a fast-access, memory-resident, doubly-linked hierarchical file system and anti-tearing algorithm on limited-resource digital computer systems such as smart cards and embedded processors.
2. Background
In general, smart cards are integrated circuit cards that form a part of a circuit or system when engaged with a smart card interface. The complexity of smart cards varies from being little more than a device allowing the storage and retrieval of information, to those having microprocessors and substantial memory. Their uses are numerous, including for example, communication devices such as mobile telephones, computer security devices, and financial transaction cards for use in Automated Teller Machines (ATMs) and the like.
The prior art includes a number of patents and other references generally related to information processing and integrated circuit cards. These include the following, each of which is incorporated by reference herein:                U.S. Pat. No. 6,289,510: Online Program-Updating System and Computer-Readable Recording Medium Storing a Program-Updating Program;        U.S. Pat. No. 6,212,576: Operating System Interface for use with Multitasking GSM Protocol Stacks;        U.S. Pat. No. 6,009,454: Multi-tasking Operation System for Industrial Controller;        U.S. Pat. No. 4,847,751: Multi-task Execution Control System;        U.S. Pat. No. 4,652,990: Protected Software Access Control Apparatus and Method;        WO02054195A2: Method of Controlling Access to a Data Field Held by a Smart Card;        WO0199448A1: Method for Processing and Transmitting Data on a Mobile Telephone Network and Microchip Onboard System;        WO0152575A1: Representation of Applications in a Telecommunication System;        WO0143472A1: Safe Information Interchange between a user of a Terminal and a SIM Application Toolkit via WAP.The following patents are directed specifically to anti-tearing algorithms, which are hereby incorporated by reference:        U.S. Pat. No. 5,715,431: Tamper Proof Security Measure In Data Writing to Non-Volatile Memory;        U.S. Pat. No. 5,532,463: Process for Making Secure the Writing of Sensitive Data into EEPROM Data Storage Memory of a Memory Card and a Memory Card for Use in the Process;        U.S. Pat. No. 5,479,637: Method and Device for Updating Information Elements in a Memory;        U.S. Pat. No. 5,390,148: Method of Rewriting Data in EEPROM and EEPROM card;        U.S. Pat. No. 4,877,945: IC Card having a Function to Exclude Erroneous Recording; and        U.S. Pat. No. 4,827,115: ID System and Method of Writing Data in an ID System.        
Smart cards and so-called embedded processors are a subset of limited-resource computers. Rather than being designed to perform a single, fixed function throughout their lifetimes, these limited-resource computers and the system software on them are being designed to accept and run application programs. See, for example, previously cited U.S. Pat. No. 6,289,510, issued Sep. 11, 2001, which is assigned to Fujitsu Limited of Kawasaki, Japan. Concomitantly, the operating systems on these computers are increasingly similar to miniature versions of the operating systems on laptop and desktop computers.
In larger computers such as laptops and desktops, a hierarchical file system containing data files and directories (“folders”) is an integral part of the native operating system. However, conventional data storage schemes in small, limited-resource computers have heretofore been only marginally like the full-fledged hierarchical file systems of desktop and laptop computers. In many cases, these schemes provide only linked blocks of memory in which to store data, or, where primitive file system semantics are provided, significant constraints and restrictions unfamiliar to programmers of laptop and desktop operating systems burden them.
In order to ease the creation of applications for these limited-resource computers and facilitate the movement of applications from laptop and desktop computers, it is desirable to implement a full-fledged hierarchical file system on these limited-resource devices, taking into account, of course, their special properties and usage profiles.
In particular, a limited-resource computer file system should balance the following requirements: complete hierarchical file system semantics; small code size for implementation; compact representation; robust to occasional errors; fast access and retrieval; and appropriate for memory-only storage.
Accordingly, it is desirable to provide systems, devices and methods that meet these requirements and are appropriate for limited resource computers.